1. Field of the Invention
The present invention generally relates to a non-volatile memory, and more particularly to a bit-level memory controller adaptable to managing defect bits of a flash memory.
2. Description of Related Art
Flash memory is a non-volatile solid state memory device that can be electrically erased and reprogrammed. Due to imperfection of semiconductor manufacturing, the flash memory may inevitably contain bad (or fault) bit cell or cells, which cannot correctly store data.
FIG. 1 schematically shows data blocks of a flash memory. The flash memory is made up of a number of blocks, each of which contains a number of pages. The page is a basic programming unit of the flash memory. As mentioned above, the flash may inevitably contain bad bit cell(s) as depicted by slant lines in the figure. According to a conventional method called block-level sorting, a block containing bad cell(s) is marked as a bad (or invalid) block. Accordingly, the entire block of the marked-up block will not be used as a valid block in its entirety, even if only one page contains the bad cell(s).
FIG. 2 schematically shows a data block of a flash memory. The block is usually made up of a number of pages. As shown in the figure, one page contains bad bit cell(s) as depicted by slant lines. According to a conventional method called page-level sorting, a page containing bad cell(s) is marked as a bad page. Accordingly, the entire page of the marked-up page will not be used as a valid page in its entirety, even if only one sector contains the bad cell(s).
FIG. 3 schematically shows a data sector of a flash memory. The sector is usually made up of a number (e.g., 512) of bytes. As shown, in the figure, the sector contains one or more bad bytes as depicted by slant lines. According to a conventional method called partial-sector-level sorting, a sector containing bad cell(s) is marked as a bad sector. Accordingly, the entire sector of the marked-up sector will not be used as a valid sector in its entirety, even if only one byte contains the bad cell(s).
Although the partial-sector-level sorting improves over the page-level sorting and the block-level sorting regarding the usage efficiency of flash memory cells, there is still a great amount of non-fault memory cells to be wasted. FIG. 4A schematically shows an exemplary page made up of four sectors (i.e., sector 0 to sector 3), within which the first sector (sector 0) has three defect-bit groups, the second sector (sector 1) has one defect-bit group and the fourth sector (sector 3) has one defect-bit group. According to the partial-sector-level sorting as mentioned above, the first, the second, and the fourth sectors are marked invalid, and only the third sector (sector 2) can be used as a valid sector, as shown in FIG. 4B. In other words, the usage efficiency of the entire page is only one-fourth (or 25%).
For the reason that conventional flash memory sorting methods could not efficiently utilize the flash memory, a need has arisen to propose a novel scheme to further improve over the conventional sorting methods.